草庐IT

TypeScript 运算符

全部标签

javascript - 覆盖 JavaScript 中比较运算符的默认行为

我有一个自定义Javascript类(使用JohnResig'sSimpleJavascriptInheritance创建)。我希望能够比较此类的两个实例,使用==,,>,>=,和符号。如何覆盖自定义类的比较器? 最佳答案 尝试覆盖valueOf().然后你可以这样写:if(obj1.valueOf()===obj2.valueOf())if(obj1.valueOf()obj2.valueOf())因此,每当我需要一个特殊的JavaScript对象类型来覆盖比较时,我只需将valueOf添加到原型(prototype)中即可。它也

javascript - 为什么 typescript 允许在声明变量之前使用它?

Typescript不会为以下代码给出编译器错误:varb=a+10;//Whynocompilationerrorherevara=10;alert(b.toString());我希望第一行是一个错误,因为我到现在为止还没有声明或初始化vara。如果我删除第二行,我会得到编译器错误。我知道它在JavaScript中有效,但我希望TypeScript给我编译错误或警告。 最佳答案 因为hoistingbehavior可能会令人困惑。你的代码实际上意味着。vara,bb=a+10a=10alert(b.toString())有正当理由

TypeScript 文件中的 JavaScript 智能感知

是否只能通过引用具有自己编码接口(interface)的.ts文件来获取TypeScript文件中的智能感知?是否有针对现有JavaScript库的解决方案? 最佳答案 您可以通过在脚本顶部使用外部脚本引用指令来获取其他TypeScript文件的IntelliSense:///附带说明一下,TypeScriptIntelliSense引用指令不像JavaScript引用指令那样支持波浪号运算符。例如,如果您的脚本位于“~/Scripts/foo/”,在JavaScript中您可以引用:///而在TypeScript中,您必须相对于当

javascript - typescript :从当前类的另一个方法调用方法

据推测,我有这个类:ClassExampleClass{publicfirstMethod(){//Dosomething}publicsecondMethod(){//DosomethingwithinvokefirstMethod}}如何正确调用另一个方法的第一个方法?(简单的“firstMethod()”不起作用)。 最佳答案 使用this:publicsecondMethod(){this.firstMethod();}如果要强制绑定(bind)到实例,请使用=>运算符:secondMethod=()=>{this.firs

javascript - TypeScript 和 AtScript 有什么区别

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion据我所知,TypeScript由Microsoft开发,用于动态生成JavaScript。我想知道TypeScript和AtScript之间的区别。JavaScript程序员学哪一个比较好。

javascript - 继承方法调用触发 Typescript 编译器错误

我在使用webstormtypescript编译器时遇到问题。我有以下类(class)exportclassrootData{id:string//...constructor(){//...}insert=():Promise=>{//...}}classchildextendsrootData{//...constructor(){super();}insert=():Promise=>{returnsuper.insert();}}所以输入“super”,我在智能感知中看到了所有rootData公共(public)方法。但是在设置super.insert()之后,我得到以下错误:

javascript - angular2(typescript) 从另一个文件导出变量

在Nodejs中,我有一个名为variables.js的页面,它看起来像这样:exports.var1='a';exports.var2='b';此文件将我在我的应用程序中使用的所有变量保存在一个地方。然后在另一个页面中,我使用以下方式调用此页面:varvariables=require('./variables');现在我可以像这样使用它来访问该页面的变量sin:alert(variables.var1);我想在angular2(typescript)中做同样的事情。我曾尝试使用导出和导入,但无法正常工作。我如何使用typescript在angular2中执行此操作?

javascript - 这些 JavaScript 按位运算符有什么作用?

xx>>=y(x=x>>y)x>>>=y(x=x>>>y)x&=y(x=x&y)x^=y(x=x^y)x|=y(x=x|y)这些不同的运算符有什么作用? 最佳答案 >Bitshift左右分别。如果您将左操作数想象成一个二进制位序列,您就是将它们向左或向右移动由右操作数指示的位数。&,^,|这些分别是按位and、xor和or。您可以将&和|视为&&和||的对应物,只是它们将对待它们的操作数作为位向量,并对每个位执行逻辑运算。没有^^操作符,但这个操作是“异或”或“exclusiveor”。您可以将“axorb”视为“a或b,但不能两者

javascript - typescript ,静态方法继承

我正在使用typescript,我对类之间的静态继承有疑问任何人都可以向我解释以下结果:classFoo{protectedstaticbar:string[]=[];publicstaticaddBar(bar:string){this.bar.push(bar);}publicstaticlogBar(){console.log(this.bar);}}classSonextendsFoo{protectedstaticbar:string[]=[];}classDaughterextendsFoo{}Foo.addBar('Hello');Son.addBar('World');

javascript - JavaScript 关系比较运算符如何强制类型?

当操作数属于不同类型时,JavaScript关系比较运算符适用哪些规则?例如,true>null是如何求值的?我可以将其输入到我的开发人员控制台,它会给出结果true,但为什么呢?我搜索了一下,但没有找到任何解释这一点的博客文章,尽管有很多解释==和===比较运算符的类型强制转换。 最佳答案 JavaScript关系比较运算符类型强制在JavaScriptspecification中定义,特别是在11.8to11.8.5部分描述运算符和部分9.1(ToPrimitive)和9.3(ToNumber)其中描述了强制操作数的过程。简而言